package DA;

import BE.BEProducto;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JOptionPane;

public class DAReporteStock 
{
    public ResultSet buscarProd(BEProducto producto,int tipoBusqueda)
    {
        DAConexion bd = new DAConexion();
        Connection con = null;
        ResultSet rs = null;
        Statement s = null;
        String query = "SELECT p.IDPRODUCTO, p.NOMBRE, t.TIPO, p.CANTIDAD"
                     + " FROM PRODUCTO p, TIPOPRODUCTO t, CONTACTO c, PRODUCTOXCONTACTO x"
                     + " WHERE p.IDTIPOPRODUCTO = t.IDTIPOPRODUCTO AND"
                            + " c.IDCONTACTO = x.IDCONTACTO AND x.IDPRODUCTO = p.IDPRODUCTO";
        
        
        if (producto.getNombre()!=""){
            query +=" AND p.NOMBRE LIKE '%" + producto.getNombre() + "%' ";
        }
        
         if (producto.getIdProducto()!=0) query=query+" and PRODUCTO.IDPRODUCTO= "+producto.getIdProducto();
         
        if (producto.getIdTipoProducto() > 0)
            query += " AND p.IDTIPOPRODUCTO = " + producto.getIdTipoProducto();
        if (producto.getIdProveedor() > 0)
            query += " AND c.IDCONTACTO = " + producto.getIdProveedor();

        if (tipoBusqueda == 0 ) //Busqueda completa
            query = "SELECT p.IDPRODUCTO, p.NOMBRE, t.TIPO, p.CANTIDAD, c.NOMBEMPRESA " +
                    "FROM PRODUCTO p, TIPOPRODUCTO t, CONTACTO c, PRODUCTOXCONTACTO x " +
                    "WHERE p.NOMBRE LIKE '%%' " +
                      "AND p.IDTIPOPRODUCTO = t.IDTIPOPRODUCTO " +
                      "AND c.IDCONTACTO = x.IDCONTACTO " +
                      "AND x.IDPRODUCTO = p.IDPRODUCTO;";

        try
        {
            con = bd.conectar();
            s = con.createStatement();
            rs = s.executeQuery(query);

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null,"Problema al consultar la base de datos",
                                          "Error",JOptionPane.ERROR_MESSAGE);
            bd.cierraConexion(con);
            return null;
        }
        bd.cierraConexion(con);
        return rs;
    }
}
